package com.lfz.demo.redis;

import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.exceptions.JedisConnectionException;

/**
 * @author lfz
 * @date 2025/3/10 15:13
 */
@Component
public class RedisFlushDB {
    // 用于检查 Redis 是否可用
    private boolean isRedisAvailable() {
        Jedis jedis = null;
        try {
            jedis = new Jedis("127.0.0.1", 6379);
            // 尝试 ping 操作，若成功则表示 Redis 可用
            jedis.ping();
            return true;
        } catch (JedisConnectionException e) {
            // 连接异常，说明 Redis 不可用
            System.err.println("Redis 不可用: " + e.getMessage());
            return false;
        } finally {
            // 释放 Jedis 连接
            if (jedis != null) {
                jedis.close();
            }
        }
    }

//    @Scheduled(fixedDelay = 60 * 60 * 1000) // 每六十分钟执行一次
    public void JedisflushDB() {
        if (isRedisAvailable()) {
            Jedis jedis = null;
            try {
                jedis = new Jedis("127.0.0.1", 6379);
                // 清除 Redis 数据库
                jedis.flushDB();
                System.out.println("redis缓存已清除！");
            } catch (Exception e) {
                // 处理 Redis 操作异常
                System.err.println("Redis 操作异常: " + e.getMessage());
            } finally {
                // 释放 Jedis 连接
                if (jedis != null) {
                    jedis.close();
                }
            }
        }
    }
}
